'''
4.士兵开枪
需求：
1）.士兵瑞恩有一把AK47
2）.士兵可以开火(士兵开火扣动的是扳机)
3）.枪 能够 发射子弹(把子弹发射出去)
4）.枪 能够 装填子弹 --增加子弹的数量

分析过程：
定义类     需要定义一个枪类，一个士兵类
对象属性    士兵：名字
            抢：名字，子弹
方法      士兵：开火
          枪：发射，装填
'''

#定义枪类
class gun:
    #初始化属性
    def __init__(self,name,zidan):
        #枪的名字
        self.name=name
        #枪的子弹
        self.zidan=zidan
    #定义发射子弹方法
    def fashe(self,b):
        if self.zidan>0:
            self.zidan-=1*b
            print(f"如果发射{b}次，子弹数量变成了{self.zidan}")
        elif self.zidan<0:
            print("输入错误！")
        else:
            print("枪里没子弹了！")
    #定义装填子弹方法
    def zhuangtian(self,m):
        self.zidan+=m
        print(f"士兵射击后，枪中回填了{m}枚子弹，枪中子弹数量是{self.zidan}枚")
    # def __str__(self):
    #     return "枪能够发射子弹"
#定义人类
class person:
    #初始化属性
    def __init__(self):
        self.name="瑞恩"
    #定义开火方法
    def kaihuo(self,name):
        #调用枪的方法
        name.fashe(2)
    def add_zidan(self,name):
        name.zhuangtian(2)
    def __str__(self):
        return f"{self.name}有一把{gun1.name}，枪中有子弹{gun1.zidan}枚"
#实例化枪
gun1=gun("AK47",-1)
#实例化人
person1=person()
print(person1)
# print(gun1)
person1.kaihuo(gun1)
person1.add_zidan(gun1)
